package cn.tedu.thread;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//测试 自定义注解
public class Test5 {
    public static void main(String[] args) {

    }
}
//自定义注解：@interface 注解名
@Target({ElementType.TYPE,ElementType.METHOD})//描述注解可以出现的位置
@Retention(RetentionPolicy.SOURCE)    //描述注解的生命周期
@interface Test{
//给注解添加功能--属性--语法特殊
//    String local();
    String local() default "";//给属性设置默认值，方便直接使用@Test
    String value();//特殊的属性value

}
//使用注解：@Test
//@Test(local = "class")//当Test注解添加了属性时，而且，属性又没有设置默认值时，需要给属性赋值
//@Test//由于属性设置好了默认值，用时就简单了
@Test("class")//由于value属性比较特殊，可以简写，赋值时省略掉value=
class Hello{
//    @Test//位置非法，不能出现
    String name;
    @Test(local = "method",value = " 23")//给多个属性赋值时，不能省略value=
    public void show(){
        System.out.println("show()");
    }
}



